home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD008b.dsk / SPACE.GORN.bas < prev    next >
BASIC Source File  |  2003-06-12  |  11KB  |  236 lines

  1. 1  REM     DATE    5/14/82
  2. 2  REM 
  3. 3  REM       SPACE GORN
  4. 4  REM 
  5. 5  REM           BY
  6. 6  REM 
  7. 7  REM     ANTHONY CHIANG
  8. 8  REM 
  9. 9  REM 
  10. 10  NORMAL : TEXT : HOME : VTAB 8: PRINT "     S      P      A      C      E     "
  11. 20  VTAB 16: PRINT "       G       O       R       N"
  12. 30  FOR K = 1 TO 3000: NEXT 
  13. 40  VTAB 12: PRINT  TAB( 12);"BY ANTHONY CHIANG"
  14. 50  VTAB 24: PRINT : PRINT  TAB( 7);"CHIANG MINI-ADVENTURE # 1"
  15. 60  FOR K = 1 TO 3100: NEXT 
  16. 70  GOSUB 7000
  17. 99 RM = 1:RB = 1:N = 16:V = 14:DG = 2:SW$ = "SNA"
  18. 100  DIM GQ(9,6),NOUN$(30),VERB$(30),MESSAGE$(20),OB$(20),OB(20),FG(20)
  19. 105  FOR K = 1 TO 11: READ OB$(K),OB(K): NEXT K
  20. 110  FOR K = 1 TO 9: FOR K1 = 1 TO 6: READ GQ(K,K1): NEXT K1: NEXT K
  21. 120  FOR K = 1 TO V: READ VERB$(K): NEXT : FOR K = 1 TO N: READ NOUN$(K): NEXT 
  22. 130  FOR K = 1 TO 20: READ ME$(K):FG(K) = 1: NEXT : FOR K = 1 TO 6: READ DI$(K): NEXT K
  23. 136  VTAB 24: PRINT "PRESS RETURN TO START";
  24. 137  GET KK$
  25. 138  IF KK$ < > CHR$(13)  THEN 137
  26. 140  REM 
  27. 150  REM       MAIN SUBROUTINE
  28. 160  REM 
  29. 170  FOR POWER = 45 TO 0  STEP  -1
  30. 180  GOSUB 3000: REM   COMMANDS
  31. 190  NEXT PO: GOTO 4420
  32. 200  REM   
  33. 210  REM   ROOM SUBROUTINE
  34. 220  REM 
  35. 225  HOME 
  36. 230  ON RM GOSUB 300,400,500,600,700,800,900,1000,1100
  37. 240 RB = 0: GOTO 2000
  38. 300  PRINT "YOU'RE INSIDE THE SHIP'S DOCK": RETURN 
  39. 400  PRINT "YOU'RE IN THE MAIN HALLWAY": RETURN 
  40. 500  PRINT "YOU'RE IN THE NAVAGATION ROOM": RETURN 
  41. 600  PRINT "YOU'RE IN THE CAPTAIN'S BEDROOM": RETURN 
  42. 700  PRINT "YOU'RE IN THE BATHROOM": RETURN 
  43. 800  PRINT "YOU'RE IN A EMPTY STORAGE ROOM": RETURN 
  44. 900  PRINT "YOU'RE IN THE COMMUNICATIONS ROOM": RETURN 
  45. 1000  PRINT "YOU'RE IN THE END OF THE MAIN HALLWAY": RETURN 
  46. 1100  PRINT "YOU'RE IN THE COMPUTER ROOM": RETURN 
  47. 2000  REM 
  48. 2010  REM   EXITS & OBJECTS
  49. 2020  REM 
  50. 2030  PRINT : PRINT "OBVIOUS EXITS:"
  51. 2040  FOR K = 1 TO 6: IF GQ(RM,K) < >0  THEN  PRINT DI$(K);" ";
  52. 2043  NEXT K: PRINT 
  53. 2045  FOR K = 1 TO 11: IF OB(K) = RM  THEN 2050
  54. 2049  NEXT K: GOTO 2080
  55. 2050  PRINT : PRINT "VISIBLE ITEMS:"
  56. 2060  FOR K = 1 TO 11: PRINT "";
  57. 2062  IF OB(2) = RM  AND K = 2  THEN  PRINT OB$(2);" ON THE WALL": GOTO 2070
  58. 2064  IF OB(K) = RM  THEN  PRINT OB$(K)
  59. 2070  NEXT K: PRINT 
  60. 2080  RETURN 
  61. 2100  DATA   FRESH BATTERIES,3,PICTURE OF WILLIAM SHATNER,4,COMBINATION SAFE,0,DISINTEGRATION GUN,0 
  62. 2110  DATA   LAZER KEY,5,SAFE'S COMBINATION,0,LOCKED DOOR,8,OPEN DOOR,0,OPEN SAFE,0,BIG UGLY SPACE GORN,9,TELECOMPUTER,7
  63. 2120  DATA  2,0,0,0,0,0
  64. 2130  DATA  8,1,4,6,3,0
  65. 2140  DATA  0,0,0,0,0,2
  66. 2150  DATA  0,5,0,2,0,0
  67. 2155  DATA  4,0,0,0,0,0
  68. 2160  DATA  7,0,2,0,0,0
  69. 2170  DATA  0,6,8,0,0,0
  70. 2180  DATA  0,2,0,7,0,0
  71. 2190  DATA  0,8,0,0,0,0
  72. 2200  DATA   GET,TAK,GOZ,WAL,MOV,USE,UNL,OPE,FIR,SHO,KIL,REA,DRO,THR
  73. 2210  DATA   BAT,PIC,SAF,GUN,KEY,COM,DOO,NOR,SOU,EAS,WES,UPZ,DOW,TEL,GOR,INV
  74. 2220  DATA  I DON'T SEE IT HERE
  75. 2230  DATA  I CAN'T DO THAT
  76. 2240  DATA  IT'S LOCKED
  77. 2250  DATA  IT'S OPEN
  78. 2260  DATA  THERE'S SOMETHING BEHIND IT
  79. 2270  DATA  I'VE NO BATTERIES
  80. 2280  DATA  I CAN'T GO IN THAT DIRECTION
  81. 2290  DATA  YOU USE WORD(S) I DON'T KNOW
  82. 2300  DATA  I DON'T UNDERSTAND YOU'RE COMMAND
  83. 2310  DATA  PLEASE USE TWO WORDS
  84. 2320  DATA  THE SHIP'S POWER IS RUNNING LOW
  85. 2330  DATA  THERE'S NOTHING HERE TO OPEN
  86. 2340  DATA   THE GUN DISINTEGRATES IN YOUR HAND! 
  87. 2350  DATA  NOTHING HAPPENS
  88. 2360  DATA  YOU'RE ALREADY CARRYING IT
  89. 2370  DATA  I'M NOT CARRYING IT
  90. 2380  DATA  I HAVE NO IMMEDIATE USE FOR THAT
  91. 2390  DATA  ARE YOU CRAZY!?
  92. 2400  DATA  THERE'S SOMETHING INSIDE
  93. 2410  DATA  THE BATTERIES ARE NOW IN THE GUN
  94. 2420  DATA  NORTH,SOUTH,EAST,WEST,UP,DOWN
  95. 3000  REM 
  96. 3010  REM     COMMANDS
  97. 3020  REM 
  98. 3030  IF RB = 1  THEN  GOSUB 225
  99. 3037  IF POWER <10  AND PO/3 =  INT(PO/3)  THEN  PRINT : PRINT ME$(11)
  100. 3040  PRINT : PRINT "TELL ME WHAT TO DO:";: INPUT "";A$
  101. 3050  IF  LEFT$(A$,1) = " "  THEN A$ =  RIGHT$(A$, LEN(A$) -1): GOTO 3050
  102. 3051  IF  LEN(A$) >1  THEN 3060
  103. 3052  IF  MID$ (A$,1,1) = "S"  THEN KN = 9: GOTO 3600
  104. 3053  IF  MID$ (A$,1,1) = "E"  THEN KN = 10: GOTO 3600
  105. 3054  IF  MID$ (A$,1,1) = "W"  THEN KN = 11: GOTO 3600
  106. 3055  IF  MID$ (A$,1,1) = "U"  THEN KN = 12: GOTO 3600
  107. 3056  IF  MID$ (A$,1,1) = "D"  THEN KN = 13: GOTO 3600
  108. 3057  IF  MID$ (A$,1,1) = "N"  THEN KN = 8: GOTO 3600
  109. 3058  IF  MID$ (A$,1,1) = "I"  THEN 3507
  110. 3059  GOTO 3090
  111. 3060  IF  LEFT$(A$,4) = "LOOK"  THEN RB = 1: GOTO 3030
  112. 3067  IF SW$ + LEFT$(A$,2) = "SNAFU"  AND  MID$ (A$,3,1) =  CHR$(67)  AND  MID$ (A$,4,1) =  CHR$(75)  THEN 3770
  113. 3069  IF  LEN(A$) <5  THEN 3090
  114. 3070  FOR K = 1 TO  LEN(A$): IF  MID$ (A$,K,1) = " "  THEN 3100
  115. 3080  NEXT 
  116. 3090  PRINT : PRINT ME$(10): GOTO 3040
  117. 3100 V$ =  LEFT$(A$,K -1):N$ =  RIGHT$(A$, LEN(A$) -K)
  118. 3112  IF V$ = "GO"  THEN V$ = V$ +"Z"
  119. 3117  IF N$ = "UP"  THEN N$ = N$ +"Z"
  120. 3120  IF  LEN(N$) <3  OR  LEN(V$) <3  THEN 3090
  121. 3125 V$ =  LEFT$(V$,3):N$ =  LEFT$(N$,3)
  122. 3130  REM 
  123. 3140  REM     CHECKING VERBS
  124. 3150  REM 
  125. 3155  IF V$ = "ATT"  OR V$ = "FIG"  THEN V$ = "KIL"
  126. 3160  FOR KV = 1 TO V
  127. 3170  IF V$ = VERB$(KV)  THEN 3200
  128. 3180  NEXT KV: GOTO 3590
  129. 3190  REM 
  130. 3200  REM     CHECKING NOUNS
  131. 3210  REM 
  132. 3213  IF N$ = "LAZ"  THEN N$ = "KEY"
  133. 3215  IF N$ = "SPA"  THEN N$ = "GOR"
  134. 3220  FOR KN = 1 TO N
  135. 3230  IF N$ = NOUN$(KN)  THEN 3250
  136. 3240  NEXT KN: GOTO 3590
  137. 3250  ON KV GOTO 3500,3500,3600,3600,3600,3700,3800,3800,3900,3900,4000,4050,4100,4100
  138. 3500  REM       GET AND TAKE
  139. 3505  IF KN < >16  THEN 3520
  140. 3507  PRINT : PRINT "YOU ARE CARRYING:": PRINT 
  141. 3510  FOR K = 1 TO 10: IF OB(K) =  -1  THEN  PRINT OB$(K)
  142. 3511  NEXT : GOTO 3000
  143. 3520  IF KN <14  AND KN >7  THEN 4300
  144. 3525  IF KN = 3  OR KN = 14  OR KN = 7  THEN  PRINT ME$(2): GOTO 4500
  145. 3530  IF OB(KN) =  -1  THEN  PRINT ME$(15): GOTO 4500
  146. 3535  IF OB(KN) < >RM  THEN  PRINT ME$(1): GOTO 4500
  147. 3540  IF KN = 2  AND FG(1) = 1  AND RM = 4  THEN  PRINT ME$(5):OB(2) =  -1:OB(3) = 4:FG(1) = 0: FOR K = 1 TO 2000: NEXT : GOTO 4500
  148. 3543  IF FG(2) = 1  THEN  IF KN = 4  AND OB(1) =  -1  OR KN = 1  AND OB(4) =  -1  THEN OB(1) = 0: PRINT : PRINT ME$(20):FG(2) = 0:OB(4) =  -1: GOTO 4500
  149. 3555  IF KN = 15  THEN 4000
  150. 3560 OB(KN) =  -1: PRINT : PRINT "OK!": GOTO 4500
  151. 3590  PRINT : PRINT ME$(8): GOTO 3040
  152. 3600  REM     MOVE  GO  AND  WALK
  153. 3605  IF RM = 8  AND KN = 7  THEN KN = 8
  154. 3610  IF KN <8  OR KN >13  THEN 4300
  155. 3620 X = KN -7
  156. 3630  IF GQ(RM,X) = 0  THEN  PRINT ME$(7): GOTO 4500
  157. 3640 RM = GQ(RM,X)
  158. 3650 RB = 1: GOTO 4500
  159. 3700  REM         USE
  160. 3710  IF KN = 14  AND RM = 7  THEN 4050
  161. 3720  IF KN <4  OR KN >6  THEN 4300
  162. 3740  IF KN = 4  THEN 3900
  163. 3750  IF KN = 5  THEN KN = 7: GOTO 3800
  164. 3760  IF KN = 6  THEN 4050
  165. 3770  PRINT : PRINT "I AM NOT THAT KIND OF GORN!":PO = PO -5: GOTO 4500
  166. 3800  REM   UNLOCK AND OPEN
  167. 3803  IF KN = 2  AND OB(2) =  -1  AND OB(6) = 0  THEN OB(6) = RM: PRINT "THERE'S A COMBINATION INSIDE!":FG(5) = 0: GOTO 4500
  168. 3804  IF KN = 2  AND OB(2) < > -1  THEN  PRINT ME$(16): GOTO 4500
  169. 3805  IF KN < >7  AND KN < >3  AND KN < >2  THEN 3830
  170. 3808  IF KN = 2  AND FG(5) = 0  THEN 3850
  171. 3810  IF KN = 7  AND RM = 8  AND OB(5) =  -1  THEN GQ(8,1) = 9:OB(7) = 0:OB(8) = 8: PRINT : PRINT ME$(4): GOTO 4500
  172. 3815  IF KN = 3  AND RM = 4  AND FG(3) = 0  THEN  PRINT : PRINT ME$(4): PRINT : PRINT ME$(19):OB(3) = 0:OB(4) = 4:OB(9) = 4: GOTO 4500
  173. 3820  IF KN = 7  AND RM < >8  OR KN = 3  AND RM < >4  THEN  PRINT : PRINT "THERE'S NOTHING HERE TO OPEN": GOTO 4500
  174. 3825  PRINT : PRINT ME$(3): GOTO 4500
  175. 3830  IF KN = 14  THEN  PRINT : PRINT "NOTHING HERE BUT US SILICON CHIPS": GOTO 4500
  176. 3840  IF KN >7  OR KN = 1  OR KN = 5  OR KN = 3  THEN 4300
  177. 3850  PRINT : PRINT "THERE'S NOTHING IMPORTANT INSIDE": GOTO 4500
  178. 3900  REM    FIRE AND SHOOT
  179. 3910  IF KN < >4  AND KN < >15  THEN 4300
  180. 3920  IF OB(4) < > -1  THEN  PRINT : PRINT ME$(16): GOTO 4500
  181. 3930  IF FG(2) = 1  THEN  PRINT : PRINT ME$(6): GOTO 4500
  182. 3940  PRINT : PRINT ME$(13):OB(4) = 0: GOTO 4500
  183. 4000  REM      KILL
  184. 4005  IF KN < >15  THEN 4300
  185. 4010  IF RM < >9  THEN  PRINT : PRINT "THE GORN'S NOT HERE": GOTO 4500
  186. 4015  PRINT ME$(18);: INPUT QA$
  187. 4018  IF  LEFT$(QA$,1) = "Y"  THEN 4030
  188. 4020  IF  LEFT$(QA$,1) = "N"  THEN 3000
  189. 4025  PRINT "ANSWER THE QUESTION: ";: GOTO 4015
  190. 4030  PRINT : PRINT "TOO BAD.  THE SPACE GORN'S FAVORITE FOODIS LOONEY UNDER GLASS.  YOU'VE JUST BEENMADE LUNCH.  CHOMP!  CHOMP!": GOTO 4490
  191. 4050  REM     READ
  192. 4055  IF KN = 6  AND OB(6) =  -1  THEN FG(3) = 0: PRINT : PRINT "IT'S 45-21-47 ": GOTO 4500
  193. 4060  IF KN = 6  THEN  PRINT : PRINT ME$(16): GOTO 4500
  194. 4065  IF KN < >14  THEN  PRINT : PRINT "YOU DON'T NEED TO READ THAT": GOTO 3000
  195. 4070  IF RM < >7  THEN  PRINT : PRINT ME$(1): GOTO 4500
  196. 4072 DD =  INT( RND(1) *2): IF DD = 1  THEN 4080
  197. 4075  PRINT : PRINT "IT SAYS:";: INVERSE : PRINT "  THE COMBINATION IS INSIDE   ": NORMAL 
  198. 4076  PRINT  TAB( 9);: INVERSE : PRINT "  THE PICTURE OF WILLIAM      ": NORMAL : PRINT  TAB( 9);: INVERSE : PRINT "  SHATNER                     ": NORMAL : GOTO 4500
  199. 4080  PRINT : PRINT "IT SAYS:";: INVERSE : PRINT "  DISINTEGRATION ONLY WAY    ": NORMAL 
  200. 4081  PRINT  TAB( 9);: INVERSE : PRINT "    TO KILL SPACE GORN       ": NORMAL : GOTO 4500
  201. 4100  REM     DROP THROW
  202. 4110  IF KN >6  OR KN = 3  THEN 4300
  203. 4120  IF OB(KN) < > -1  THEN  PRINT : PRINT ME$(16): GOTO 4500
  204. 4130 OB(KN) = RM
  205. 4140  PRINT : PRINT "OK!"
  206. 4150  IF OB(4) = 9  AND FG(2) = 0  THEN 5000
  207. 4160  GOTO 4500
  208. 4300  PRINT : PRINT ME$(9): GOTO 3000
  209. 4400  REM      DEATH
  210. 4405  PRINT : PRINT "WITH ONE MIGHTY SWISH OF HIS TAIL THE   SPACE GORN SLICES YOU IN HALF.  REST IN PIECE.": GOTO 4490
  211. 4410  REM 
  212. 4420  PRINT : PRINT "THE SHIP HAS JUST RUN OUT OF POWER.     QUICKLY THE TEMPERTURE REACHES THE SUB  ZERO LEVEL.  YOU ARE FROZEN SOLID AND   THE SPACE GORN EATS YOU LIKE A POPSICLE."
  213. 4490  PRINT : PRINT "GAME OVER.": END 
  214. 4500  IF RM < >9  THEN DG = 2: GOTO 4510
  215. 4505 DG = DG -1: IF DG = 0  THEN 4400
  216. 4510  RETURN 
  217. 5000  FOR K = 1 TO 25: PRINT : NEXT K
  218. 5010  PRINT "    THE DISINTEGRATION GUN BOUNCES OFF ": PRINT 
  219. 5020  PRINT "THE FLOOR.  THE SPACE GORN CATCHES IT": PRINT 
  220. 5030  PRINT "AND EATS IT.  SUDDENLY, THERE IS A ": PRINT 
  221. 5040  PRINT "BLINDING FLASH!  THE CHEMICALS IN THE ": PRINT 
  222. 5050  PRINT "GORN'S STOMACH MUST HAVE CAUSED THE GUN": PRINT 
  223. 5055  PRINT "TO EXPLODE.  WHEN THE LIGHT DIMS, YOU": PRINT 
  224. 5060  PRINT "FIND A LARGE PILE OF ASHES.  THE GUN AND"
  225. 5070  PRINT "THE GORN HAVE DISINTEGRATED.  ": PRINT 
  226. 5080  PRINT "CONGRATULATIONS!  YOU'VE WON!"
  227. 5085  PRINT 
  228. 5090  FOR K = 1 TO 3: PRINT : NEXT 
  229. 6000  END 
  230. 7000  REM         INSTRUCTIONS 
  231. 7010  HOME : HTAB 14: INVERSE : PRINT "SPACE GORN": NORMAL : PRINT : PRINT 
  232. 7015  PRINT "     THE YEAR IS 2882, YOU ARE INVES-   TIGATING A DERELICT STARSHIP, ABANDONED IN DEEP SPACE.  THE MOMENT YOU ENTER,
  233. 7020  PRINT "YOU SMELL THE STENCH ON THE INFAMOUS    SPACE GORN!": PRINT 
  234. 7030  PRINT "     THE SPACE GORN IS AN 11 FOOT TALL  LIZARD-LIKE CREATURE WITH A THICK SCALY SKIN AND A RAZOR SHARP, WHIP-LIKE TAIL.
  235. 7040  PRINT "GORNS ARE WELL KNOWN FOR THEIR ENORMOUS APPETITES AND ALSO FOR THEIR ABILITY TO REGURGITATE STREAMS OF CORROSIVE MOTOR  OIL LIKE SALIVA TO DIGEST ANY PREY UP
  236. 7050  PRINT "TO 20 METERS AWAY.  YOUR MISSION IS TO  FIND AND DESTROY THE SPACE GORN BEFORE  THE SHIP'S POWER RUNS OUT.": VTAB 21: HTAB 5: PRINT "GOOD LUCK.": RETURN